para estado
local cabeca[6], estrutura[6], mascara[6]
sele produtos
go top
limpa(3,0,24,80,cor,.f.)
limpa(3,0,23,79,cor,.t.)
sele produtos  
set order to 3
go top

  cabeca[1]  = 'CODIGO'     ; estrutura[1] = fiel(1) ; mascara[1] = '@R 99.9999'
  cabeca[2]  = 'PRODUTO'    ; estrutura[2] = fiel(2) ; mascara[2] = '@!'
  cabeca[3]  = 'UND'        ; estrutura[3] = fiel(3) ; mascara[3] = '@!'
  cabeca[4]  = 'PRECO'      ; estrutura[4] = fiel(4) ; mascara[4] = '999999.99'
  menu(24,0,' Inclui ',2,1)
  menu(24,8,'Altera ',1,1)
  menu(24,15,'Exclui ',1,1)
  menu(24,22,'Relatorio ',1,1)
  menu(24,32,'Procura ',1,1)
  menu(24,40,'Etiqueta ',2,1)
  menu(24,72,'Esc-Sai ',1,3)
  dbedit(4,1,22,78,estrutura,'pro100',mascara,cabeca,.T.)
  set order to 1
retu

function pro100(modo,coluna)
@ 3,0  say space(80) color 'w+/g'
@ 3,1  say 'Ultima compra : ' + dtoc(compra)          color 'w+/g'
@ 3,30 say 'Valor : ' + trans(valor,'999,999.99')     color 'w+/g'
@ 3,56 say 'Estoque : ' + trans(estoque,'999,999.99') color 'w+/g'
set cursor on

if modo = 0 .or. modo = 3
   retu(1)
endif
telaprodutos=savescreen(4,0,24,80)
tecla = lastkey()
do case
   case tecla = 5 .and. modo = 1

    mensa(10,' Inicio do arquivo ',2)
    retu(2)

   case tecla = 24 .and. modo = 2

    mensa(10,' Final do arquivo ',2)
    retu(2)

   case tecla = 13 .and. estado = 1

    retu(0)

   case tecla = 27

    retu(0)

   case tecla = 73 .or. tecla = 105

    while .t.
     sele produtos  
     sombra(6,4,22,77,'Inclusao')
     mcodigo = space(6)
     @ 8,6 say 'Codigo        :' get mcodigo pict '@R 99.9999'
     read
     if empty(mcodigo)
        exit
     endif
     if len(alltrim(mcodigo)) # 2 .and. len(alltrim(mcodigo)) # 6
        mensa(10,'Codigo do produto invalido',2)
        loop
     endif
     set order to 1
     seek mcodigo
     set order to 3
     if .not. eof()
        mensa(10,'Produto ja cadastrado',2)
       loop
     endif
     inicializa()
     telapro()
     read
     if right(mcodigo,4) = '    '
        mproduto = alltrim(mproduto)
        mproduto = padc(mproduto,40,'')
     endif
     if confirma(18,60,' 1 - Confirma ',' 2 - Cancela  ')
        appe blank
        if inclusao()
           grava()
           unlock
        endif
     endif
   enddo

   retu(2)

   case tecla = 65 .or. tecla = 97

     sombra(6,4,22,77,'Alteracao')
     mcodigo = codigo
     @ 8,6 say 'Codigo        : ' + trans(codigo,'@R 99.9999')
     inicializa()
     telapro()
     read
     if right(mcodigo,4) = '    '
        tone(500,3)
        mproduto = alltrim(mproduto)
        mproduto = padc(mproduto,40,' ')
     endif
     if confirma(18,60,' 1 - Confirma ',' 2 - Cancela  ')
        if alteracao()
           grava()
           unlock
        endif
     endif
     skip
   retu(2)

   case tecla = 69 .or. tecla = 101

     sombra(6,4,22,77,'Exclusao')
     @ 8,6 say 'Codigo        : ' + codigo
     @ 9,6 say 'Produto       : ' + produto
     if confirma(18,50,' 1 - Exclui     ',' 2 - Nao exclui ')
        if alteracao()
           dele
           skip
        endif
     endif

   retu(2)

   case tecla = 82 .or. tecla = 114

   if .not. impressora()
      retu(2)
   endif
   titulo = .t. 
   pagina = 1
   sele produtos
   set order to 3
   go top
   sombra(8,6,22,77,'Relacao de Produto','Esc-Cancela')
   while .not. eof() .and. esc()
      set devi to screen
      @ 10,8 say 'Produto : ' + trans(codigo,'@R 99.9999') + ' ' + produto
      set devi to printer
      if titulo
         tit_rela('Tabela de Produtos',pagina)
         @ prow()+1,0 say 'CODIGO  PRODUTO                                               PRECO    UND'
         @ prow()+1,0 say ''
         titulo = .f.
      endif
      if len(alltrim(codigo)) = 2
         @ prow()+2,8 say produto
         @ prow()  ,8 say produto
         @ prow()+1,0  say ''
         skip
         loop
      endif
      mproduto = alltrim(produto) + repli('.',50-len(alltrim(produto)))
      @ prow()+1,0 say trans(codigo,'@R 99.9999') + ' ' + mproduto + trans(preco,'99,999.99') + '    ' + unidade 
      skip
      if prow() > 56
         eject
         titulo = .t.
         pagina++
      endif
   enddo
   eject
   set devi to screen
   sele produtos
   go top
   retu(2)

   case tecla = 80 .or. tecla = 112

     sele produtos   
     sombra(8,5,22,77,'Procura')
     mproduto = space(50)
     @ 10,7 say 'Produto :' get mproduto pict '@!'
     read
     set softseek on
     set order to 2
     seek mproduto
     set order to 3
     set softseek off
     retu(2)

   otherwise

    retu(1)

endcase
              
function telapro()
     @ 09,6  say 'Produto       :' get mproduto pict '@!'
     @ 10,6  say 'Unidade       :' get munidade pict '@!'             when val(right(mcodigo,4)) # 0 
     @ 11,6  say 'Preco         :' get mpreco pict '999,999.99'       when val(right(mcodigo,4)) # 0 
     @ 12,6  say 'Estoque       :' get mestoque  pict '999999.99' when val(right(mcodigo,4)) # 0
     @ 12,40 say 'Minimo        :' get mminimo   pict '999999.99' when val(right(mcodigo,4)) # 0
     @ 13,6  say 'Ultima Compra :' get mcompra                    when val(right(mcodigo,4)) # 0 
     @ 14,6  say 'Valor         :' get mvalor pict '999,999.99'   when val(right(mcodigo,4)) # 0
retu 

